﻿#pragma once
#include "XyNet/Global.h"

namespace XyNet
{
	class RpcService;

	/// rpc服务管理器，用于保存处理具体事务的服务
	class XYNET_API RpcServiceManager : noncopyable
	{
	public:
		/// 清除所有服务
		void clear();
		/// 添加服务
		void addService(shared_ptr<RpcService> service);
		/// 移除服务
		void removeService(int serviceId);
		/// 获取服务
		shared_ptr<RpcService> getService(int serviceId);

	private:
		/// 哈希服务映射
		map<int, shared_ptr<RpcService>> _idServiceMap;
	};
}